Dominique Dumont: Easier Lcdproc package upgrade with automatic configuration merge
Hello
This blog explains how next lcdproc package provide easier upgrader with automatic configuration merge.
Here s the current situation: lcdproc is shipped with several configuration files, including
*
* user is asked once by
* no further question are asked (no ucf style questions). For instance, here s an upgrade from
* check
* edit the configuration with a GUI (see Managing Lcdproc configuration with cme for more details) Here s a screenshot of the GUI: More information * libconfig-model-lcdproc-perl package page. This package provides a configuration model for
* This blog explains how this model is generated from upstream
* How to adapt a package to perform configuration upgrade with Config::Model Next steps Automatic configuration merge can be applied to other packages. But my free time is already taken by the maintenance of Config::Model and the existing models, there s no room for me to take over another package. On the other hand, I will definitely help people who want to provide automatic configuration merge on their packages. Feel free to contact me on:
* config-model-user mailing list
* debian-perl mailing list (where Config::Model is often used to maintain debian package file with
* #debian-perl IRC channel All the best
Tagged: config-model, configuration, debian, Perl, upgrade
/etc/LCDd.conf
. This file is modified upstream at every lcdproc
release to bring configuration for new lcdproc drivers. On the other hand, this file is always customized to suit the specific hardware of the user s system. So upgrading a package will always lead to a conflict during upgrade. User will always be required to choose whether to use current version or upstream version.
Next version of libconfig-model-lcdproc-perl will propose user whether to perform automatic merge of the configuration: upstream change are taken into account while preserving user change.
The configuration upgrade shown is based on Config::Model can be applied to other package.
Current lcdproc situation
To function properly, lcdproc
configuration must always be adapted to suit the user s hardware. On the following upgrade, upstream configuration is often updated so user will often be shown this question:
Configuration file '/etc/LCDd.conf' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** LCDd.conf (Y/I/N/O/D/Z) [default=N] ?This question is asked in the middle of an upgrade and can be puzzling for an average user. Next package with automatic merge Starting from
lcdproc 0.5.6
, the configuration merge is handled automatically by the packaging script with the help of Config::Model::Lcdproc.
When lcdproc
is upgraded to 0.5.6, the following changes are visible:*
lcdproc
depends on libconfig-model-lcdproc-perl* user is asked once by
debconf
whether to use automatic configuration upgrades or not.* no further question are asked (no ucf style questions). For instance, here s an upgrade from
lcdproc_0.5.5
to lcdproc_0.5.6
:
$ sudo dpkg -i lcdproc_0.5.6-1_amd64.deb (Reading database ... 322757 files and directories currently installed.) Preparing to unpack lcdproc_0.5.6-1_amd64.deb ... Stopping LCDd: LCDd. Unpacking lcdproc (0.5.6-1) over (0.5.5-3) ... Setting up lcdproc (0.5.6-1) ... Changes applied to lcdproc configuration: - server ReportToSyslog: '' -> '1' # use standard value update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Starting LCDd: LCDd. Processing triggers for man-db (2.6.6-1) ...Note: the automatic upgrade currently applies only to
LCDd.conf
. The other configuration files of lcdproc
are handled the usual way.
Other benefits
User will also be able to:* check
lcdproc
configuration with sudo cme check lcdproc
* edit the configuration with a GUI (see Managing Lcdproc configuration with cme for more details) Here s a screenshot of the GUI: More information * libconfig-model-lcdproc-perl package page. This package provides a configuration model for
lcdproc
.* This blog explains how this model is generated from upstream
LCDd.conf
.* How to adapt a package to perform configuration upgrade with Config::Model Next steps Automatic configuration merge can be applied to other packages. But my free time is already taken by the maintenance of Config::Model and the existing models, there s no room for me to take over another package. On the other hand, I will definitely help people who want to provide automatic configuration merge on their packages. Feel free to contact me on:
* config-model-user mailing list
* debian-perl mailing list (where Config::Model is often used to maintain debian package file with
cme
)* #debian-perl IRC channel All the best
Tagged: config-model, configuration, debian, Perl, upgrade